package com.bsth.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import org.hibernate.annotations.Formula;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;


/**
 * 
 * @ClassName: Line(线路实体类)
 * 
 * @Description: TODO(线路)
 * 
 * @Author bsth@lq
 * 
 * @Date 2016-4-11 16:06:17
 *
 * @Version ﻿公交调度系统BS版 0.1
 * 
 */

@Entity
@Table(name = "bsth_c_line")
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
public class Line implements Serializable {
	
	@Id
	/** 线路ID 主键(唯一标识符) int length(11) */
	private Integer id;
	
	/** 线路名称  varchar length(50) 不能为空 */
	private String name;
	
	/** 线路编码 varchar length(50) 不能为空 */ 
	private String lineCode;

	/** 英文名  varchar length(50)  */
	private String es;

	/** 简称 varchar length(50) */ 
	private String shortName;
	
	/** 起始站名称 varchar length(50) 不能为空 
	 *  该字段值会在规划线路站点操作时会去验证是否有值。如果为空，则用线路规划站点的起点站。默认使用该字段填写值 */ 
	private String  startStationName;
	
	/** 终点站名称 varchar length(50) 不能为空 
	 *  该字段值会在规划线路站点操作时会去验证是否有值。如果为空，则用线路规划站点的起点站。默认使用该字段填写值 */
	private String endStationName;
	
	/** 起始站首班车时间 00:00 上海公交APP中某个接口所需要的字段值 varchar length(50) 不能为空 */
	private String startStationFirstTime;
	
	/** 起始站末班车时间 00:00 上海公交APP中某个接口所需要的字段值 varchar length(50) 不能为空 */
	private String startStationEndTime;
	
	/** 终点站首班时间 00:00 上海公交APP中某个接口所需要的字段值 varchar length(50) 不能为空*/
	private String endStationFirstTime;
		
	/** 终点站末班时间 00:00 上海公交APP中某个接口所需要的字段值 */
	private String endStationEndTime;
	
	/** 所属公司 varchar length(50) */ 
	private String company;

	/** 分公司  varchar length(50)*/
	private String brancheCompany;

    /** 组合公司分公司编码 */
    @Formula(" concat(company, '_', branche_company) ")
    private String cgsbm;

	/** 性质(线路类型) varchar length(50) */
	private String nature;

	/** 线路等级 varchar length(50) */
	private String level;
	
	/** 线路长度 */ 
	private double length;
	
	/** 线路负责人 varchar length(50) */ 
	private String chargeName;
	
	/** 负责人电话 varchar length(50) */ 
	private String telephone;
	
	/** 是否撤销 <1:是;0:否> bit length(50) */ 
	private Integer destroy;

	/** 是否夜宵线   <1:是;0:否> bit length(50)*/ 
	private Integer supperLine;

	/** 起始调度电话 varchar length(50) */
	private String startPhone;

	/** 终点调度电话  varchar length(50) */
	private String endPhone;

	/** 开辟日期 date*/
	@DateTimeFormat(pattern ="yyyy-MM-dd")
	private Date openDate;

	/** 线路沿革 varchar length(50) */
	private String history;
	
	/** 上海市线路编码 varchar length(50) */
	private String shanghaiLinecode;
	
	/** 设备线路编码 varchar length(50) */
	private String eqLinecode;
	
	/** 配置车辆总数   老版本系统字段， 新版本系统业务需求暂时没用到该字段 ，这里暂时留着 int length(11)*/
	private Integer carSumNumber;
	
	/** 空调车辆数量   老版本系统字段， 新版本系统业务需求暂时没用到该字段 ，这里暂时留着 int length(11) */
	private Integer hvacCarNumber;
	
	/** 普通车辆数量   老版本系统字段， 新版本系统业务需求暂时没用到该字段 ，这里暂时留着 int length(11) */
	private Integer ordCarNumber;
	
	/** 权证车辆数量  报表需要的字段值 */
	private Integer warrantCar;
	
	/** 权证配车启用日期  报表需要的字段值 */
	private Integer warrantDate;
	
	/** 停车场编码   老版本系统字段， 新版本系统业务需求暂时没用到该字段 ，这里暂时留着 int length(11) */
	private String carParkCode;
	
	/** 线路规划类型 <0:双向;1:环线> int length(11) 运管处接口需要的字段 不能为空 */
	private Integer linePlayType; 
	
	/** 描述 varchar length(255) */
	private String descriptions;
	
	/** 创建人 int length(11) */
	private Integer createBy;
		
	/** 修改人 int length(11) */
	private Integer updateBy;
	
	/** 创建日期 timestamp  */
	@Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
	private Date createDate;
	
	/** 修改日期 timestamp */
	@Column(name = "update_date", columnDefinition = "TIMESTAMP  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
	private Date updateDate;

	/** 是否在使用 <1:是;0:否> bit length(50) */
	private Integer inUse;
	
	public Integer getWarrantCar() {
		return warrantCar;
	}

	public void setWarrantCar(Integer warrantCar) {
		this.warrantCar = warrantCar;
	}

	public Integer getWarrantDate() {
		return warrantDate;
	}

	public void setWarrantDate(Integer warrantDate) {
		this.warrantDate = warrantDate;
	}

	public Integer getLinePlayType() {
		return linePlayType;
	}

	public void setLinePlayType(Integer linePlayType) {
		this.linePlayType = linePlayType;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getLineCode() {
		return lineCode;
	}

	public void setLineCode(String lineCode) {
		this.lineCode = lineCode;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getEs() {
		return es;
	}

	public void setEs(String es) {
		this.es = es;
	}

	public String getShortName() {
		return shortName;
	}

	public void setShortName(String shortName) {
		this.shortName = shortName;
	}

	public Integer getCarSumNumber() {
		return carSumNumber;
	}

	public void setCarSumNumber(Integer carSumNumber) {
		this.carSumNumber = carSumNumber;
	}

	public Integer getHvacCarNumber() {
		return hvacCarNumber;
	}

	public void setHvacCarNumber(Integer hvacCarNumber) {
		this.hvacCarNumber = hvacCarNumber;
	}

	public Integer getOrdCarNumber() {
		return ordCarNumber;
	}

	public void setOrdCarNumber(Integer ordCarNumber) {
		this.ordCarNumber = ordCarNumber;
	}

	public String getCarParkCode() {
		return carParkCode;
	}

	public void setCarParkCode(String carParkCode) {
		this.carParkCode = carParkCode;
	}

	public String getStartStationName() {
		return startStationName;
	}

	public void setStartStationName(String startStationName) {
		this.startStationName = startStationName;
	}

	public String getStartStationFirstTime() {
		return startStationFirstTime;
	}

	public void setStartStationFirstTime(String startStationFirstTime) {
		this.startStationFirstTime = startStationFirstTime;
	}

	public String getStartStationEndTime() {
		return startStationEndTime;
	}

	public void setStartStationEndTime(String startStationEndTime) {
		this.startStationEndTime = startStationEndTime;
	}

	public String getEndStationName() {
		return endStationName;
	}

	public void setEndStationName(String endStationName) {
		this.endStationName = endStationName;
	}

	public String getEndStationFirstTime() {
		return endStationFirstTime;
	}

	public void setEndStationFirstTime(String endStationFirstTime) {
		this.endStationFirstTime = endStationFirstTime;
	}

	public String getEndStationEndTime() {
		return endStationEndTime;
	}

	public void setEndStationEndTime(String endStationEndTime) {
		this.endStationEndTime = endStationEndTime;
	}

	public String getCompany() {
		return company;
	}

	public void setCompany(String company) {
		this.company = company;
	}

	public String getBrancheCompany() {
		return brancheCompany;
	}

	public void setBrancheCompany(String brancheCompany) {
		this.brancheCompany = brancheCompany;
	}

	public String getNature() {
		return nature;
	}

	public void setNature(String nature) {
		this.nature = nature;
	}

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	public double getLength() {
		return length;
	}

	public void setLength(double length) {
		this.length = length;
	}

	public String getChargeName() {
		return chargeName;
	}

	public void setChargeName(String chargeName) {
		this.chargeName = chargeName;
	}

	public String getTelephone() {
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	public Integer getDestroy() {
		return destroy;
	}

	public void setDestroy(Integer destroy) {
		this.destroy = destroy;
	}

	public Integer getSupperLine() {
		return supperLine;
	}

	public void setSupperLine(Integer supperLine) {
		this.supperLine = supperLine;
	}

	public String getStartPhone() {
		return startPhone;
	}

	public void setStartPhone(String startPhone) {
		this.startPhone = startPhone;
	}

	public String getEndPhone() {
		return endPhone;
	}

	public void setEndPhone(String endPhone) {
		this.endPhone = endPhone;
	}

	public Date getOpenDate() {
		return openDate;
	}

	public void setOpenDate(Date openDate) {
		this.openDate = openDate;
	}

	public String getHistory() {
		return history;
	}

	public void setHistory(String history) {
		this.history = history;
	}

	public String getShanghaiLinecode() {
		return shanghaiLinecode;
	}

	public void setShanghaiLinecode(String shanghaiLinecode) {
		this.shanghaiLinecode = shanghaiLinecode;
	}

	public String getEqLinecode() {
		return eqLinecode;
	}

	public void setEqLinecode(String eqLinecode) {
		this.eqLinecode = eqLinecode;
	}

	public String getDescriptions() {
		return descriptions;
	}

	public void setDescriptions(String descriptions) {
		this.descriptions = descriptions;
	}

	public Integer getCreateBy() {
		return createBy;
	}

	public void setCreateBy(Integer createBy) {
		this.createBy = createBy;
	}

	public Integer getUpdateBy() {
		return updateBy;
	}

	public void setUpdateBy(Integer updateBy) {
		this.updateBy = updateBy;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Date getUpdateDate() {
		return updateDate;
	}

	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	public Integer getInUse() { return inUse; }

	public void setInUse(Integer inUse) { this.inUse = inUse; }

    public String getCgsbm() {
        return cgsbm;
    }

    public void setCgsbm(String cgsbm) {
        this.cgsbm = cgsbm;
    }
}
